SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[pje_porPostitulos] @idInscripcion as integer ,@pje as float output,@resultado as int  AS
set nocount on --para anular el trafico econ el cliente (no salen los print)
set dateformat mdy 

declare  @idAgente as int,@idCargoGenerico as int,@idAsignaturaGenerica as int, @idTipoConvocatoria as int ,@idlocalidad as int, @FechaLimite as datetime,@fechaCierreDeInscripciones as datetime,@nivel_insc as int,@ciclo as int
declare @titulo as int, @fechaEgreso as datetime,@idCapacitacion as integer, @FechaCapacitacion as datetime
declare @tieneCapacitacion as char(1) , @tieneCapacitacionParaHabilitaztes as char(1)
declare @Titulo1 as int,@Titulo2 as int,@Titulo3 as int,@Categoria as float
declare @cantidadPostgrados as int -- cantidad de postgrados relacionados al titulo con el que se inscribe el agente
--Variables del Cursor postitulos
declare @idcapacitacionc as int
declare @idagentec as int
declare @capacitacionc as int
declare @horascatedrac as int
select * from tb_capacitacionesdelagente
DECLARE @Error INT

BEGIN TRANSACTION
SET @ERROR=0


--TRAEMOS TODOS LOS DATOS DE LA INSCRIPCION A PARTIR DEL PARAMETRO DEL SP

select  @idAgente=i.Agente,@IdcargoGenerico = i.CargoGenerico,@IdAsignaturaGenerica=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite,@fechaCierreDeInscripciones=Conv.fechaCierre,@nivel_insc = i.nivel,@ciclo=isnull(ciclo,1)
	from 
	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion

set @pje=0

/* HACER AQUI LOS PROCESOS */

if((select count(*) from tb_titulosdelagente t where t.agente=@idagente)>1)
	begin
		--HACER LOS CALCULOS DE POSTITULO DE DOCENTE 
		if(exists( SELECT t.titulo from tb_titulosdelagente t where t.agente=@idagente and t.titulo iN(select a.titulo3 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica))
		OR exists (SELECT t.titulo from tb_titulosdelagente t where t.agente=@idagente and t.titulo iN(select a.titulo2 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica)))
			
			begin
				--hACER LOS CALCULOS DE POSTITULO AQUI
				if(exists (select * from tb_capacitacionesdelagente ca inner join tb_capacitaciones c on ca.capacitacion=c.idcapacitacion 
				where ca.agente=@idagente and c.cursoocapacitacion=14))
					begin
						declare postitulos cursor FORWARD_ONLY FOR
						select ca.idcapacitacion,ca.agente,ca.capacitacion,c.horascatedra from tb_capacitacionesdelagente ca inner join tb_capacitaciones c on ca.capacitacion=c.idcapacitacion 
						where ca.agente=@idagente and c.cursoocapacitacion=14
						open postitulos
						fetch next from postitulos into @idcapacitacionc,@idagentec,@capacitacionc,@horascatedrac
						while @@FETCH_STATUS = 0
							begin

							set @horascatedrac=(@horascatedrac*40)/60
							if(@horascatedrac <=200) set @pje=@pje + 0.250
							if(@horascatedrac >200 and @horascatedrac <=400) set @pje=@pje +0.500
							if(@horascatedrac >400 and @horascatedrac <=600) set @pje=@pje +0.750
							if(@horascatedrac >600) set @pje=@pje + 1
						    
							fetch next from postitulos into @idcapacitacionc,@idagentec,@capacitacionc,@horascatedrac
							end
						close postitulos
						deallocate postitulos

						
					end
				else
					begin
					set @pje=0
					end
				
		    end
	    
    end					
print 'NO TIENE OTROS POSTITULOS'

--salir:
IF @Error <> 0
begin
	print 'NO TIENE OTROS TITULOS DOCENTES'
	PRINT @@TRANCOUNT 
	ROLLBACK TRANSACTION
end
ELSE
	COMMIT TRANSACTION
GO
